# vscode 插件开发指南

# 插件的能力

  • 主题
    • 界面和文本(TextMate 语法)主题色
    • 图标样式
  • 通用功能
    • 添加命令
    • 添加配置项
    • 添加快捷键
    • 添加菜单项
    • 添加右键菜单
    • 从文本输入框获取输入(QuickPick)
    • 存储数据(localStorage)
  • 工作区扩展
    • 活动栏项目
    • 显示提示框
    • 状态栏信息
    • 显示进度条
    • 打开文件
    • 显示网页(web view)
  • 程序语言
    • 实现新语言的高亮
    • 实现新语言的调试器
    • 代码库管理
    • 定义和执行 Task
    • 定义 snippet

# 生命周期

  • Activation Event:设置插件激活的时机。位于 package.json 中。
  • Contribution Point:设置在 VSCode 中哪些地方添加新功能,也就是这个插件增强了哪些功能。位于 package.json 中。
  • Register:在 extension.ts 中给要写的功能用 vscode.commands.register... 给 Activation Event 或 Contribution Point 中配置的事件绑定方法或者设置监听器。位于入口文件(默认是 extension.ts)的 activate() 函数中。

# packages.json

package 中和插件有关的主要内容是如下几个项目,其中 main 是插件代码的入口文件。

{
    "activationEvents": [
        "onCommand:extension.helloWorld"
    ],
    "main": "./out/extension.js",
    "contributes": {
        "commands": [
            {
                "command": "extension.helloWorld",
                "title": "Hello World"
            },
            {
                "command": "extension.helloVscode",
                "title": "Hello vscode"
            }
        ]
    },
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 生成项目

首先利用 npm 全局安装 Yeoman (opens new window) and VS Code Extension Generator (opens new window):

npm install -g yo generator-code
1

接着执行:

yo code
1

按照提示一步步定制化你的项目,一个基本的项目结构就生成了,有点类似 React 的 create-react-app

# 调试模式

按下 F5,会编译插件并新开一个窗口运行调试模式